Trò chơi đua xe động vật trong UNITY Engine
114.914 lượt xem;
- Animals.cs
- GameScreen /
- AnimalRacing /
- Scripts /
- Assets /
- project /
1 using UnityEngine;
2 using System.Collections.Generic;
3 using System.Xml;
4 using System.IO;
5
6 namespace GamePlay
7 {
8
9 public class Animals : MonoBehaviour
10 {
11 private List<GameObject> animals;
12 public GameScreen gameScreen;
13
14 public void Start()
15 {
16 string[] names = new string[] { "dog", "monkey", "pig", "fox", "giraffe", "panda", "rhino", "tiger", "elephant", "lion" };
17
18 animals = new List<GameObject>();
19 int animalIndex = 0;
20
21 UpgradeInfo upgradeInfo = new UpgradeInfo();
22
23 GameObject animalPlayer = (GameObject)Instantiate(Resources.Load<GameObject>("Animals/" + names[Attr.currentAnimal]));
24 animalPlayer.transform.parent = gameObject.transform;
25 animalPlayer.transform.localPosition = new Vector3(-3.5f + 0.7f * animalIndex, -0.9f, 0);
26 setSortingLayer(animalPlayer, "Animal8");
27 Animal player = animalPlayer.AddComponent<Animal>();
28 player.setAnimalName(names[Attr.currentAnimal]);
29 player.animalIndex = animalIndex;
30 player.gameScreen = gameScreen;
31 float speedPlayer = upgradeInfo.getItem(Attr.currentAnimal, 0, false);
32 float jumpPlayer = upgradeInfo.getItem(Attr.currentAnimal, 1, false);
33 player.setAnimalProperties(speedPlayer, jumpPlayer);
34 animalPlayer.layer = LayerMask.NameToLayer("Animal1");
35
36 animals.Add(animalPlayer);
37 animalIndex++;
38
39 animalPlayer.GetComponent<Animator>().Play("run");
40 //animalPlayer.GetComponent<Animator>().SetBool(Animal.IS_PLAYER, true);
41
42 TextAsset xml = Resources.Load<TextAsset>("Levels/WorldMap" + (Attr.currentWorld + 1));
43 XmlDocument xmlDoc = new XmlDocument();
44 xmlDoc.Load(new StringReader(xml.text));
45
46 XmlNodeList xmlNodeList = xmlDoc.DocumentElement.ChildNodes;
47 XmlNodeList levelNodeList = xmlNodeList.Item(Attr.currentLevel).ChildNodes;
48 for (int i = 0; i < levelNodeList.Count; i++)
49 {
50 int numberAnimal = int.Parse(levelNodeList.Item(i).Attributes.Item(0).Value);
51 string animalName = levelNodeList.Item(i).Attributes.Item(1).Value.ToLower();
52
53 for (int k = 0; k < numberAnimal; k++)
54 {
55 GameObject animalObject = (GameObject)Instantiate(Resources.Load<GameObject>("Animals/" + animalName));
56 animalObject.transform.parent = gameObject.transform;
57 animalObject.transform.localPosition = new Vector3(-3.5f + 0.7f*animalIndex, -0.9f, 0);
58 setSortingLayer(animalObject, "Animal" + animalIndex);
59 Animal animal = animalObject.AddComponent<Animal>();
60 animal.setAnimalName(animalName.ToLower() + "_blue");
61 animal.animalIndex = animalIndex;
62 animal.gameScreen = gameScreen;
63 float speed = upgradeInfo.getSpeed(i);
64 float jump = upgradeInfo.getJump(i);
65 animal.setAnimalProperties(speed, jump);
66 animalObject.layer = LayerMask.NameToLayer("Animal" + (animalIndex + 1));
67 animals.Add(animalObject);
68 animalIndex++;
69
70 animalObject.GetComponent<Animator>().Play("run_blue");
71
72 //animalObject.GetComponent<Animator>().SetBool(Animal.IS_PLAYER, false);
73 }
74 }
75 }
76
77 private void setSortingLayer(GameObject gObject, string sortingLayerName)
78 {
79 Transform[] transforms = gObject.GetComponentsInChildren<Transform>(true);
80 for (int i = 0; i < transforms.Length; i++)
81 {
82 if (transforms[i].GetComponent<SpriteRenderer>() != null)
83 transforms[i].GetComponent<SpriteRenderer>().sortingLayerName = sortingLayerName;
84 }
85 }
86
87 public GameObject getAnimal(int animalIndex)
88 {
89 return animals[animalIndex];
90 }
91
92 public void setRunning(bool isRunning)
93 {
94 for (int i = 0; i < animals.Count; i++)
95 {
96 animals[i].GetComponent<Animal>().setRunning(isRunning);
97 }
98 }
99 }
100
101 }
2 using System.Collections.Generic;
3 using System.Xml;
4 using System.IO;
5
6 namespace GamePlay
7 {
8
9 public class Animals : MonoBehaviour
10 {
11 private List<GameObject> animals;
12 public GameScreen gameScreen;
13
14 public void Start()
15 {
16 string[] names = new string[] { "dog", "monkey", "pig", "fox", "giraffe", "panda", "rhino", "tiger", "elephant", "lion" };
17
18 animals = new List<GameObject>();
19 int animalIndex = 0;
20
21 UpgradeInfo upgradeInfo = new UpgradeInfo();
22
23 GameObject animalPlayer = (GameObject)Instantiate(Resources.Load<GameObject>("Animals/" + names[Attr.currentAnimal]));
24 animalPlayer.transform.parent = gameObject.transform;
25 animalPlayer.transform.localPosition = new Vector3(-3.5f + 0.7f * animalIndex, -0.9f, 0);
26 setSortingLayer(animalPlayer, "Animal8");
27 Animal player = animalPlayer.AddComponent<Animal>();
28 player.setAnimalName(names[Attr.currentAnimal]);
29 player.animalIndex = animalIndex;
30 player.gameScreen = gameScreen;
31 float speedPlayer = upgradeInfo.getItem(Attr.currentAnimal, 0, false);
32 float jumpPlayer = upgradeInfo.getItem(Attr.currentAnimal, 1, false);
33 player.setAnimalProperties(speedPlayer, jumpPlayer);
34 animalPlayer.layer = LayerMask.NameToLayer("Animal1");
35
36 animals.Add(animalPlayer);
37 animalIndex++;
38
39 animalPlayer.GetComponent<Animator>().Play("run");
40 //animalPlayer.GetComponent<Animator>().SetBool(Animal.IS_PLAYER, true);
41
42 TextAsset xml = Resources.Load<TextAsset>("Levels/WorldMap" + (Attr.currentWorld + 1));
43 XmlDocument xmlDoc = new XmlDocument();
44 xmlDoc.Load(new StringReader(xml.text));
45
46 XmlNodeList xmlNodeList = xmlDoc.DocumentElement.ChildNodes;
47 XmlNodeList levelNodeList = xmlNodeList.Item(Attr.currentLevel).ChildNodes;
48 for (int i = 0; i < levelNodeList.Count; i++)
49 {
50 int numberAnimal = int.Parse(levelNodeList.Item(i).Attributes.Item(0).Value);
51 string animalName = levelNodeList.Item(i).Attributes.Item(1).Value.ToLower();
52
53 for (int k = 0; k < numberAnimal; k++)
54 {
55 GameObject animalObject = (GameObject)Instantiate(Resources.Load<GameObject>("Animals/" + animalName));
56 animalObject.transform.parent = gameObject.transform;
57 animalObject.transform.localPosition = new Vector3(-3.5f + 0.7f*animalIndex, -0.9f, 0);
58 setSortingLayer(animalObject, "Animal" + animalIndex);
59 Animal animal = animalObject.AddComponent<Animal>();
60 animal.setAnimalName(animalName.ToLower() + "_blue");
61 animal.animalIndex = animalIndex;
62 animal.gameScreen = gameScreen;
63 float speed = upgradeInfo.getSpeed(i);
64 float jump = upgradeInfo.getJump(i);
65 animal.setAnimalProperties(speed, jump);
66 animalObject.layer = LayerMask.NameToLayer("Animal" + (animalIndex + 1));
67 animals.Add(animalObject);
68 animalIndex++;
69
70 animalObject.GetComponent<Animator>().Play("run_blue");
71
72 //animalObject.GetComponent<Animator>().SetBool(Animal.IS_PLAYER, false);
73 }
74 }
75 }
76
77 private void setSortingLayer(GameObject gObject, string sortingLayerName)
78 {
79 Transform[] transforms = gObject.GetComponentsInChildren<Transform>(true);
80 for (int i = 0; i < transforms.Length; i++)
81 {
82 if (transforms[i].GetComponent<SpriteRenderer>() != null)
83 transforms[i].GetComponent<SpriteRenderer>().sortingLayerName = sortingLayerName;
84 }
85 }
86
87 public GameObject getAnimal(int animalIndex)
88 {
89 return animals[animalIndex];
90 }
91
92 public void setRunning(bool isRunning)
93 {
94 for (int i = 0; i < animals.Count; i++)
95 {
96 animals[i].GetComponent<Animal>().setRunning(isRunning);
97 }
98 }
99 }
100
101 }
animalPlayer.GetComponent
animalObject.GetComponent